1. Technical Field
The present invention relates in general to data processing systems and in particular to checkpoint operations within a data processing system. Still more particularly, the present invention relates to checkpoint operations with network packet buffering within a data processing system.
2. Description of the Related Art
Checkpoint-based High-Availability is a methodology whereby a virtual machine running on a host machine (i.e., the “primary host”) regularly (e.g., at 25 ms intervals) mirrors the corresponding CPU and memory state onto another host machine (i.e., the “secondary host”). This mirroring process involves: (1) tracking changes to the memory of the virtual machine; (2) periodically stopping the virtual machine; (3) sending these changes along with CPU state update changes over a network to the secondary host; (4) waiting for the secondary host to acknowledge receipt of the memory and CPU state update; and (5) resuming the virtual machine. The mirroring/“checkpointing” process ensures that the secondary host is able to resume the workload with no loss of service should the primary host suffer a sudden hardware failure.
With respect to the transmission of network packets in conventional checkpointing approaches, virtual machines generally proxy network traffic through a single virtualization point (e.g. a virtual input/output server (VIOS) or a hypervisor) that “owns” the network adapter. These conventional approaches generally require that a checkpoint is performed on every network packet transmission. As a result, the network latency increases and software complexity is introduced by these conventional approaches.